from utils import get_embedding, cosine_similarity, cosine_similarity_2, logging


query = """
城商行高级管理人员分工调整是否需要报属地监管，具体依据是什么?
"""

text0 = """
城商行高级管理人员分工调整是否需要报属地监管，具体依据是什么?
"""

text1 = """
第十八条 拟任人曾任金融机构董事长（理事长）或高级管理人员的，申请人在提交任职资格申请材料时，还应当提交该拟任人的离任审计报告。离任审计报告一般应当于该人员离任后的六十日内向其离任机构所在地监管机构报送。在同一法人机构内平行调动的，应当于该人员离任后的三十日内向其离任机构所在地监管机构报送。
"""

text2 = """
法规《银行业金融机构董事（理事）和高级管理人员任职资格管理办法》中的
第十八条 拟任人曾任金融机构董事长（理事长）或高级管理人员的，申请人在提交任职资格申请材料时，还应当提交该拟任人的离任审计报告。离任审计报告一般应当于该人员离任后的六十日内向其离任机构所在地监管机构报送。在同一法人机构内平行调动的，应当于该人员离任后的三十日内向其离任机构所在地监管机构报送。
"""

text3 = """
法规：《银行业金融机构董事（理事）和高级管理人员任职资格管理办法》中的
第十八条 拟任人曾任金融机构董事长（理事长）或高级管理人员的，申请人在提交任职资格申请材料时，还应当提交该拟任人的离任审计报告。离任审计报告一般应当于该人员离任后的六十日内向其离任机构所在地监管机构报送。在同一法人机构内平行调动的，应当于该人员离任后的三十日内向其离任机构所在地监管机构报送。
"""

text4 = """
法规:《银行业金融机构董事（理事）和高级管理人员任职资格管理办法》中的
第十八条 拟任人曾任金融机构董事长（理事长）或高级管理人员的，申请人在提交任职资格申请材料时，还应当提交该拟任人的离任审计报告。离任审计报告一般应当于该人员离任后的六十日内向其离任机构所在地监管机构报送。在同一法人机构内平行调动的，应当于该人员离任后的三十日内向其离任机构所在地监管机构报送。
"""

text5 = """
法规:《银行业金融机构董事（理事）和高级管理人员任职资格管理办法》
第十八条: 拟任人曾任金融机构董事长（理事长）或高级管理人员的，申请人在提交任职资格申请材料时，还应当提交该拟任人的离任审计报告。离任审计报告一般应当于该人员离任后的六十日内向其离任机构所在地监管机构报送。在同一法人机构内平行调动的，应当于该人员离任后的三十日内向其离任机构所在地监管机构报送。
"""

text_list = [text0, text1, text2, text3, text4, text5]
score_list = [None] * len(text_list)
# 获取两个文本的嵌入向量
query_emb = get_embedding(query)

# 使用 for 循环计算每个文档与查询文本的余弦相似度
for i, text in enumerate(text_list):
    text_emb = get_embedding(text)
    similarity = cosine_similarity_2(query_emb, text_emb)
    score_list[i] = similarity
    print(f"文档{i+1}: {similarity:.4f}")

# 保存到日志
logging.info(f"'query': {query}")
for i, text in enumerate(text_list):
    logging.info(f"'文档{i+1}': {text}")

for i, score in enumerate(score_list):
    logging.info(f"'问题与文档{i+1}的相似度分数': {score:.4f}")

# 日志打印两行==========
logging.info("'================================='")
logging.info("'================================='\n\n\n\n\n")
